Preparation

Load data, helper functions

source("analysis_helpers.R")
library(lubridate)
library(forcats) #zum neu Ordnen der Faktor-levels ex_label mit fct_relevel()
library(plotly)
library(htmltools)#to plot a series of plotly graphs through a for loop, see https://forum.posit.co/t/display-plotly-graph-produced-in-a-for-loop-in-rmakrdown-html/168188
#tracking_data <- readRDS("data/prepared/f33ac92fb8_tracking_data.rds")
tracking_data <- load_app_sessions_tracking_data(c("f33ac92fb8"))

Tracking session duration

Limit tracking session events to exercise time frame

tracking_data <- filter(tracking_data, !(user_code %in% c("13d48be01652b32e", "1e8e8090e4bc1355", "9cd0199df2050778")))
quest_data <- question_submit_data(tracking_data)

Plot user ID vs. time of question submission (one graph for each question)

plot_submission_times_questions(loop_over = quo(ex_label),
                                loop_over_list = unique(quest_data$ex_label),
                                group_by_variable = quo(user_code),
                                quest_data=quest_data)
#knitting this document gives the desired plotly graphs, executing the codechunk wise additionally outputs some strange shiny.tag.list 

Plot question vs. time of question submission (one graph for each student)

plot_submission_times_questions(loop_over = quo(user_code),
                                loop_over_list = unique(quest_data$user_code),
                                group_by_variable = quo(ex_label),
                                quest_data=quest_data)
#knitting this document gives the desired plotly graphs, executing the code chunkwise additionally outputs some strange shiny.tag.list